With the advent of the computer age, computer and software users have grown accustomed to user-friendly software applications that help then write, calculate, organize, prepare presentations, send and receive electronic mail, make music, and the like. For example, modem electronic word processing applications allow users to prepare a variety of useful documents. Modem spreadsheet applications allow users to enter, manipulate, and organize data. Modem electronic slide presentation applications allow users to create a variety of slide presentations containing text, pictures, data or other useful objects.
Computer-generated documents, for example, word processing documents, may be structured and formatted according to a markup language such as the Extensible Markup Language (XML). Applying XML structure to such documents, or representing the entire document as an XML file, provides many advantages. For example, a given text or data range in a template document may be structured for containing data of a certain type (e.g., date, heading, conclusion, summary, etc.). Additionally, by representing the entire document as XML, all the application information used to create that document is available in a text format for external sources to parse/edit. Subsequently, a consuming application may readily parse the document to obtain and use either the desired text, formatting information, structural information, or even just the data from the document according to the structure of the actual persistent XML saved out with the document.
Unfortunately, editing behaviors of such structured documents are often fragile because the documents are limited by the fact that the positioning of XML tags (markup) on the document surface determines the structure of the XML instance document in an associated user-defined schema file. Problems often arise from common user operations (e.g., copy/paste from one section of a document to another section) may corrupt the XML structure applied to the document. Additionally, all elements from a user-defined schema file must be included in some form on the document surface. This makes it impossible to choose only a subset of the data to present to the user for editing while maintaining the rest for other uses (workflow; searching; management; etc.). Other problems include an inability for solution creators to use a schema file as a method for carrying true metadata about the document. Moreover, elements that are semantically unnecessary on the document surface (e.g., non-leaf elements which are not marking up mixed content) must be included which further increase the fragility associated with common user operations. The final difficulty for a solution creator is that in order to deal with the data they care about, they must also navigate through all the application specific markup that is not as interesting to them. They must also make sure that when editing values of their own custom data, they also need to maintain the proper application markup.
It is with respect to these and other considerations that the present invention has been made.